#pragma once

#include "State.h"
#include "Behaviour.h"

namespace game_engine { namespace library
{

/*!
 * \class CameraFollow
 * \brief 
 */
class CameraFollow : public game_engine::components::State
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    CameraFollow(void);
    CameraFollow(game_engine::components::Behaviour *parent);
    virtual ~CameraFollow(void);

    // Others
    void onEnter(void) throw(...);
    void onLoop(const FLOAT32 time) throw(...);

private:
    void updateCameraPosition(const FLOAT32 iniX, const FLOAT32 iniY);

};

}}
